package arithmetic;

import java.util.Scanner;

/**
 * 知识点：
 * 1.String.split();
 * 2.String.toCharArray();
 * 备注：
 * 需要认真一点
 * 描述
 * 开发一个坐标计算工具， A表示向左移动，D表示向右移动，W表示向上移动，S表示向下移动。从（0,0）点开始移动，从输入字符串里面读取一些坐标，并将最终输入结果输出到输出文件里面。
 *
 * 输入：
 *
 * 合法坐标为A(或者D或者W或者S) + 数字（两位以内）
 *
 * 坐标之间以;分隔。
 *
 * 非法坐标点需要进行丢弃。如AA10;  A1A;  $%$;  YAD; 等。
 *
 * 下面是一个简单的例子 如：
 *
 * A10;S20;W10;D30;X;A1A;B10A11;;A10;
 *
 * 处理过程：
 *
 * 起点（0,0）
 *
 * +   A10   =  （-10,0）
 *
 * +   S20   =  (-10,-20)
 *
 * +   W10  =  (-10,-10)
 *
 * +   D30  =  (20,-10)
 *
 * +   x    =  无效
 *
 * +   A1A   =  无效
 *
 * +   B10A11   =  无效
 *
 * +  一个空 不影响
 *
 * +   A10  =  (10,-10)
 *
 * 结果 （10， -10）
 *
 * 数据范围：每组输入的字符串长度满足1≤n≤10000  ，坐标保证满足−2^31≤x,y≤2^31−1 ，且数字部分仅含正数
 * 输入描述：
 * 一行字符串
 *
 * 输出描述：
 * 最终坐标，以逗号分隔
 *
 * 示例1
 * 输入：
 * A10;S20;W10;D30;X;A1A;B10A11;;A10;
 * 复制
 * 输出：
 * 10,-10
 * 复制
 * 示例2
 * 输入：
 * ABC;AKL;DA1;
 * 复制
 * 输出：
 * 0,0
 */
public class TestHW17 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        // while (in.hasNextInt()) { // 注意 while 处理多个 case
        //     int a = in.nextInt();
        //     int b = in.nextInt();
        //     System.out.println(a + b);
        // }
        try {
            String str = in.nextLine();
            int len = str.trim().length();
            if (len < 1 || len > 10000) return;
            String[] strs = str.split(";");
            String[] strs2 = test11(strs);
            if(strs2.length == 0)return;
            test2(strs2);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    //将合理的字符串转成可运算的数据
    public static void test2(String[] strs) {
        int x = 0;
        int y = 0;
        int index = 0;
        while (index < strs.length) {
            String str = strs[index];
            String str0 = str.substring(0, 1);
            String str1 = str.substring(1, str.length());
            int n = Integer.parseInt(str1);
            if ("A".equals(str0)) {
                x -= n;
            }
            if ("D".equals(str0)) {
                x += n;
            }
            if ("S".equals(str0)) {
                y -= n;
            }
            if ("W".equals(str0)) {
                y += n;
            }
            index++;
        }
        System.out.println(x + "," + y);
    }

    //获取所有合理的字符串
    public static String[] test11(String[] strs) {
        String str = "";
        int index = 0;
        while (index < strs.length) {
            boolean isH = test1(strs[index]);
            if (isH) {
                str += strs[index] + ";";
            }
            index++;
        }
        String[] str0 = str.split(";");
        return str0;
    }

    //子字符串判断是否合理
    public static boolean test1(String str) {
        boolean isH = true;
        if (str.length() > 3 || str.length() < 2) {
            isH = false;
            return isH;
        }
        char[] chs = str.toCharArray();
        char ch = chs[0];
        switch (ch) {
            case 'A':
                break;
            case 'D':
                break;
            case 'W':
                break;
            case 'S':
                break;
            default:
                isH = false;
        }
        if (!isH) return isH;
        for (int i = 1; i < chs.length; i++) {
            char ch2 = chs[i];
            if (ch2 < 48 || ch2 > 57) {
                isH = false;
                break;
            }
        }
        return isH;
    }
}
